Compare HDR versus Burst using cpBurstCamera
Experiment with various HDR (multiple frames at different exposures) and other multi-image "burst" algorithms for capturing scenes with a variety of dynamic ranges, as well as object and camera motion.
Create a pbrt scene we can use
Using pbrt lets us get the highest-fidelity rendering
sceneChoice = "Chess Set";
% apertureDiameter = 6;% in mm
% for legacy reasons, scenes don't have a uniform naming scheme,
% so we map the user's choice to the appropriate options
if strcmp(sceneChoice, "Cornell Box with Bunny")
scenePath = 'Cornell_BoxBunnyChart';
sceneName = 'cornell box bunny chart';
elseif strcmp(sceneChoice, "Cornell Box Reference")
scenePath = "cornell_box";
sceneName = "cornell_box";
pbrtCPScene = cpScene('pbrt', 'scenePath', scenePath, 'sceneName', sceneName, ...
'resolution', [filmResolution filmResolution], ...
'numRays', numRays, 'sceneLuminance', sceneLuminance, ...
'lensFile','dgauss.22deg.6.0mm.json');
pbrtCPScene = cpScene('pbrt', 'scenePath', scenePath, 'sceneName', sceneName, ...
'resolution', [filmResolution filmResolution], ...
'numRays', numRays, 'sceneLuminance', sceneLuminance, 'verbose', 0);
end
Read 9 materials and 3 textures..
% add a skymap and a light
pbrtCPScene.thisR.set('skymap','room.exr','rotation val',[-90 180 0]);
lightName = 'from camera';
ourLight = piLightCreate(lightName,...
'cameracoordinate', true);
pbrtCPScene.thisR.set('light', ourLight,'add');
Create our sample camera
Just one module with a pre-made sensor and default optics.
% some timing code, just to see how fast we run...
setpref('ISET', 'benchmarkstart', cputime);
setpref('ISET', 'tStart', tic);
% cpBurstCamera is a sub-class of cpCamera that implements simple HDR and Burst
ourCamera = cpBurstCamera();
% We'll use a pre-defined sensor for our Camera Module, and let it use
% default optics for now. We can then assign the module to our camera:
sensor = sensorCreate('imx363');
% Cameras can eventually have more than one module (lens + sensor)
% but for now, we just create one using our sensor
ourCamera.cmodules(1) = cpCModule('sensor', sensor); % default
Let's Look at the Camera we've Created
cpCameraWindow is actually a mini-application, that lets you see the properties of your camera, and the scene you've chosen. You can use it to take photos in whatever modes your camera supports. It also allows to to set Advanced Processing, which tells cameras that support it to do additional processing like image registration and tonemapping, as needed, in their ISP, instead of the default combination of frames in the sensor.
cpCameraWindow(ourCamera, pbrtCPScene);
Take Pictures using Auto, HDR, and Burst Intents
For the simplest case we ask our camera to take some pictures using pre-defined intents. By deault our camera assumes the 'Auto' intent. We also demonstrate 'Burst', which will capture more frames if the camera type we are using supports it. 'HDR' also fires a burst, but bracketed. Our default camera sums the frames in Burst mode, and chooses the highest non-saturated value at each pixel for HDR mode.
autoImage = ourCamera.TakePicture(pbrtCPScene, 'Auto',...
'imageName','Auto Mode no motion', 'insensorIP',false);
Elapsed time is 2.017718 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.50
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 10.81
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.31
*** Rendering time for ChessSet: 13.7 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done. Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.83
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 8.13
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.31
*** Rendering time for ChessSet: 11.4 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.048266 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.39
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.44
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.30
*** Rendering time for ChessSet: 14.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
hdrSensorImage = ourCamera.TakePicture(pbrtCPScene, 'HDR',...
'numHDRFrames', 3,'imageName','HDR in sensor no motion', ...
'insensorIP', true);
Elapsed time is 2.111301 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.40
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 10.76
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.09
*** Rendering time for ChessSet: 13.3 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.50
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 8.21
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.19
*** Rendering time for ChessSet: 11.0 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.086196 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.34
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.42
*** Rendering time for ChessSet: 14.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.042271 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.35
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.42
*** Rendering time for ChessSet: 14.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.093865 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.39
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.32
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.31
*** Rendering time for ChessSet: 14.1 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
burstSensorImage = ourCamera.TakePicture(pbrtCPScene, 'Burst',...
'numBurstFrames', 3, 'imageName','Burst in Sensor',...
'insensorIP',true);
Elapsed time is 1.945846 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.50
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 10.83
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.41
*** Rendering time for ChessSet: 13.8 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 8.31
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.19
*** Rendering time for ChessSet: 11.0 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.036241 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.39
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.33
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.19
*** Rendering time for ChessSet: 14.0 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.064846 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.16
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.08
*** Rendering time for ChessSet: 13.7 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.029789 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.39
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.29
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.30
*** Rendering time for ChessSet: 14.0 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
cpCompareImages(hdrSensorImage, burstSensorImage, 'HDR vs Burst with no moion');
HDR vs Burst with no moion

Now we add a small amount of camera motion
Combining multiple frames into a single image can either be done at the sensor level, or a higher-level in the ISP. At the sensor level the default strategies implemented by ISETCam are to sum the individual frames for Burst mode, and select the image with the most signal at each pixel for HDR. Once there is camera motion, though, those algorithms create errors in registration.
So our BurstCamera allows us to turn on Enhanced Processing, which does HDR by rendering each frame and then using image registration and tone-mapping to create the result. Both are "off-the-shelf" algorithms, so one place for experimentation and innovation is improving upon them, perhaps by using some of the papers from Google and others. For Burst, only image registration is used. This simple form of image registration relies on a single geometric transformation of the entire image, so it does not help with object motion.
pbrtCPScene.cameraMotion = {{'unused', [.002, 0, 0], [0, 0, 0]}}; % first tuple is translation, second is rotation
hdrMotionImage = ourCamera.TakePicture(pbrtCPScene, 'HDR',...
'numHDRFrames', 3,'imageName','HDR in ISP with Motion', ...
'insensorIP', true);
Elapsed time is 2.059740 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.39
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 10.73
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 0.98
*** Rendering time for ChessSet: 13.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done. Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.50
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 8.32
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.21
*** Rendering time for ChessSet: 11.1 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 1.959245 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.50
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.23
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.41
*** Rendering time for ChessSet: 14.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 1.966515 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.23
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.19
*** Rendering time for ChessSet: 13.9 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 1.977660 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.00
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.29
*** Rendering time for ChessSet: 13.7 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
cpCompareImages(hdrSensorImage, hdrMotionImage, 'In sensor HDR without and with motion');
In sensor HDR without and with motion

% Now try with firmware ISP ("Enhanced Processing" setting)
hdrISPMotionImage = ourCamera.TakePicture(pbrtCPScene, 'HDR',...
'numHDRFrames', 3,'imageName','HDR in ISP with Motion', ...
'insensorIP', false);
Elapsed time is 1.983762 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 10.87
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.31
*** Rendering time for ChessSet: 13.6 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 8.31
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.19
*** Rendering time for ChessSet: 11.0 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 1.991340 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.50
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.34
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.29
*** Rendering time for ChessSet: 14.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 1.984614 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.49
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.16
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.42
*** Rendering time for ChessSet: 14.1 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.095781 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.70
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.15
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.40
*** Rendering time for ChessSet: 14.3 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
Warning: Maximum number of trials reached. Consider increasing the maximum distance or decreasing the desired confidence.
cpCompareImages(hdrISPMotionImage, hdrMotionImage, 'Tonemap vs. In sensor HDR in Camera Motion Case');
Tonemap vs. In sensor HDR in Camera Motion Case

burstMotionImage = ourCamera.TakePicture(pbrtCPScene, 'Burst',...
'numBurstFrames', 3, 'imageName','Burst in ISP with Motion',...
'insensorIP',false);
Elapsed time is 1.951742 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.27
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 10.81
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.10
*** Rendering time for ChessSet: 13.3 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.40
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 8.40
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.30
*** Rendering time for ChessSet: 11.2 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.038707 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.39
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.26
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.42
*** Rendering time for ChessSet: 14.1 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 1.984008 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.38
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.02
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.20
*** Rendering time for ChessSet: 13.7 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.Elapsed time is 2.072046 seconds.
Rsync Put: wsl rsync -r -t /mnt/b/iset/iset3d-v4/local/ChessSet/ david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/
Pushed scene to remote in: 1.49
Render: docker --context render-vista exec -i pbrt-gpu-Windows11575 sh -c "cd /iset/iset3d-v4/local/ChessSet && rm -rf renderings/{*,.*} && pbrt --gpu --outfile renderings/ChessSet.exr ChessSet.pbrt"
Successfuly rendered remotely in: 11.06
Rsync Pull: wsl rsync -r david@muxreconrt.stanford.edu:/home/david/iset/iset3d-v4/local/ChessSet/renderings/ /mnt/b/iset/iset3d-v4/local/ChessSet/renderings
Retrieved output in: 1.41
*** Rendering time for ChessSet: 14.0 sec ***
exr2bin done.exr2bin done.exr2bin done.exr2bin done.
cpCompareImages(hdrISPMotionImage, burstMotionImage,"HDR vs. Burst in ISP for Camera Motion Case");
HDR vs. Burst in ISP for Camera Motion Case

Print out some timing stats
Just for human consumption
tTotal = toc(getpref('ISET','tStart'));
beforeTime = getpref('ISET', 'benchmarkstart', 0);
disp(strcat("cpCompare ran on: ", glData.Vendor, " ", glData.Renderer, "with driver version: ", glData.Version));
cpCompare ran on: NVIDIA Corporation NVIDIA GeForce RTX 3090/PCIe/SSE2with driver version: 4.6.0 NVIDIA 510.06
disp(strcat("cpCompare ran in: ", string(afterTime - beforeTime), " seconds of CPU time."));
cpCompare ran in: 700.5 seconds of CPU time.
disp(strcat("cpCompare ran in: ", string(tTotal), " total seconds."));
cpCompare ran in: 757.3255 total seconds.